package com.abewy.android.apps.klyph.core.graph.serializer;
import org.json.JSONObject;
import com.abewy.android.apps.klyph.core.fql.Tag;
import com.abewy.android.apps.klyph.core.fql.serializer.Deserializer;
import com.abewy.android.apps.klyph.core.fql.serializer.TagDeserializer;
import com.abewy.android.apps.klyph.core.graph.Comment;
import com.abewy.android.apps.klyph.core.graph.Comment.Attachment;
import com.abewy.android.apps.klyph.core.graph.Comment.Attachment.Media;
import com.abewy.android.apps.klyph.core.graph.Comment.Attachment.Media.Image;
import com.abewy.android.apps.klyph.core.graph.Comment.Attachment.Target;
import com.abewy.android.apps.klyph.core.graph.GraphObject;
import com.abewy.android.apps.klyph.core.graph.UserRef;
public class CommentDeserializer extends Deserializer
{
@Override
public GraphObject deserializeObject(JSONObject data)
{
Comment comment = new Comment();
deserializePrimitives(comment, data);
comment.setFrom((UserRef) new UserRefDeserializer().deserializeObject(getJsonObject(data, "from")));
comment.setAttachment((Attachment) new AttachmentDeserializer().deserializeObject(getJsonObject(data, "attachment")));
return comment;
}
private static class AttachmentDeserializer extends Deserializer
{
@Override
public GraphObject deserializeObject(JSONObject data)
{
Attachment attachment = new Attachment();
deserializePrimitives(attachment, data);
attachment.setDescription_tags(new TagDeserializer().deserializeArray(getJsonArray(data, "description_tags"), Tag.class));
attachment.setMedia((Media) new MediaDeserializer().deserializeObject(getJsonObject(data, "media")));
attachment.setTarget((Target) new TargetDeserializer().deserializeObject(getJsonObject(data, "target")));
return attachment;
}
private static class MediaDeserializer extends Deserializer
{
@Override
public GraphObject deserializeObject(JSONObject data)
{
Media media = new Media();
media.setImage((Image) new ImageDeserializer().deserializeObject(getJsonObject(data, "image")));
return media;
}
private static class ImageDeserializer extends Deserializer
{
@Override
public GraphObject deserializeObject(JSONObject data)
{
Image image = new Image();
deserializePrimitives(image, data);
return image;
}
}
}
private static class TargetDeserializer extends Deserializer
{
@Override
public GraphObject deserializeObject(JSONObject data)
{
Target target = new Target();
deserializePrimitives(target, data);
return target;
}
}
}
}